float weights[15];
float2 offsets[15];

Texture InputTexture;
sampler inputTexture = sampler_state
{
    texture = <InputTexture>;
    magfilter = POINT;
    minfilter = POINT;
    mipfilter = POINT;
};

float4x4 MatrixTransform : register(vs, c0);

void SpriteVertexShader(inout float4 color : COLOR0, inout float2 texCoord : TEXCOORD0, inout float4 position : SV_Position) 
{ 
    position = mul(position, MatrixTransform); 
} 

float4 PS_GaussianBlur(float4 TexCoords : TEXCOORD0) : COLOR0
{
    float4 color = float4(0, 0, 0, 1);

	for(int i = 0; i < 15; i++ )
		color += tex2D(inputTexture, TexCoords + offsets[i]) * weights[i];

	return color;
}

technique GaussianBlur
{
    pass Pass0
    {
        PixelShader = compile ps_2_0 PS_GaussianBlur();
		//VertexShader = compile vs_2_0 SpriteVertexShader();
    }
}
